草庐IT

Java Event-Dispatching Thread 解释

全部标签

c++ - 谁能解释当前 C++0x 标准草案的这一段?

谁能解释ISON3242的这句话?§3.2,第二点Anexpressionispotentiallyevaluatedunlessitisanunevaluatedoperand(Clause5)orasubexpressionthereof.Avariableornon-overloadedfunctionwhosenameappearsasapotentially-evaluatedexpressionisodr-usedunlessitisanobjectthatsatisfiestherequirementsforappearinginaconstantexpression(5

c++ - 将枚举类变量重新解释为基础类型的引用是否安全?

我已经看到reinterpret_cast用于将增量应用于枚举类,我想知道这种用法在标准C++中是否可以接受。enumclassFoo:int8_t{Bar1,Bar2,Bar3,Bar4,First=Bar1,Last=Bar4};for(Foofoo=Foo::First;foo(foo)){...}我知道在普通类的情况下强制转换为基类的引用是安全的。但是由于枚举类不是事件隐式转换为它们的底层类型,我不确定上面的代码是否以及如何保证在所有编译器中工作。有什么线索吗? 最佳答案 您可能希望重载运算符++如果您真的想迭代它的值,请为

c++ - 重新解释强制转换模板非类型参数 : clang c++14 vs c++1z

考虑以下代码:templatestructfoo{};intmain(){foof;(void)f;}当使用-std=c++11或-std=c++14在clang3.8.0上编译时,程序会编译。使用-std=c++1z编译时,会出现以下错误:main.cpp:4:9:error:non-typetemplateargumentisnotaconstantexpressionfoof;^~~~~~~~无论C++模式如何,gcc5.3.0都不会编译代码,我认为这是正确的。C++14和C++1z之间的clang有什么区别,为什么它接受代码?与此处相关的C++1z中是否发生了一些变化?

c++ - 如何解释 kcachegrind 的结果

谁能告诉我如何对kcachegrind的结果感兴趣。我有两个版本的代码(v1、v2)都在Debug模式下编译。我通过带有选项的valgrind运行它们:valgrind--tool=callgrind-v....由此生成的输出文件在kcachegrind中打开。现在我已经发现代码的v2版本比第一个版本v1运行得更快。但是我如何从kcachegrind的调用图中获取结果。在kcachegrindAllCallers选项卡中,我有以下列:Incl.,距离,被叫,来电者.IIUC、Called和caller是程序中调用“调用者”的次数。但我不知道其他人。另一件事是选择特定功能,然后“调用者”

c++ - 有人可以解释一下 "indices trick"吗?

我注意到在pretty-print元组的上下文中提到了“索引技巧”。听起来很有趣,所以我关注了thelink.好吧,那并不顺利。我理解这个问题,但真的无法理解发生了什么。为什么我们甚至需要任何东西的索引?那里定义的不同功能对我们有何帮助?什么是“裸”?等等有人可以为参数包和可变元组方面的专家详细介绍该内容吗? 最佳答案 问题是:我们有一个std::tuple我们有一些功能f我们可以调用每个元素,其中f返回int,我们希望将这些结果存储在一个数组中。让我们从一个具体的案例开始:templateintf(T){returnsizeof(

c++ - QML 是在编译时翻译成 native 代码,还是在运行时解释为 JavaScript 在 Web 浏览器中运行的方式?

QML是在编译时翻译成native代码,还是在运行时解释,几乎就像JavaScript在Web浏览器中运行的方式一样? 最佳答案 AFAIK,Qt文档中似乎没有直接详细的解释,但是一些Qt黑客trytoexplainit:QMLiscompiledtoanoptimizedbytecode-likestreamandtheJavaScriptexpressionspassthroughanoptimizedevaluatorforsimpleexpressions.还有相关的QTBUG任务QtQuickstartuptimeneed

c++ - 使用 "using"两次被不同的编译器以不同方式解释

考虑以下代码:structA{intpropose();};structA1:A{intpropose(int);usingA::propose;};structB1:A1{protected:usingA1::propose;public:usingA::propose;};intmain(){B1().propose();}让我们编译这个:g++-std=c++11main.cpp.我在使用GNU4.8.1时遇到以下编译器错误:main.cpp:Infunction'intmain()':main.cpp:2:9:error:'intA::propose()'isinaccessi

c++ - 是否将指向第一个成员的指针解释为类本身定义良好?

我有一些看起来像这样的代码:templatestructmemory_block{//Verynotcopiable,thisclasscannotmovememory_block(memory_blockconst&)=delete;memory_block(memory_blockconst&&)=delete;memory_block(memory_block&)=delete;memory_block(memory_block&&)=delete;memory_block&operator=(memory_blockconst&)=delete;memory_block&ope

c++ - 什么可以解释 std::cout 不显示任何内容?

无论出于何种原因,std::cout不会在我的应用程序中显示任何内容。下面是我的开发环境的描述。我正在使用QtCreator开发一个Qt应用程序。由于无法从我的工作站(XP64)启动QtCreator,我目前正在使用VisualStudio2008和Qt插件(通过导入.pro项目文件)开发它。一切似乎都很好,并且应用程序正常工作。在某些情况下(取决于命令行参数),我不想启动HIM,只是为了在CLI中显示几句话(例如命令行所需的参数)。我没有收到任何错误,但没有显示任何内容。我确信运行的相应代码是(经典)以下:std::cout你知道为什么什么都没有显示吗?

c++ - c++中的引用解释

考虑以下代码:#includetemplatevoidinc1(T&&x){Ty=x;++y;}templatevoidinc2(T&x){Ty=x;++y;}intmain(){inta=10;inc1(a);//aisnow11intb=10;inc2(b);//bremains10}替换后我们有voidinc1(int&x){int&y=x;//referencetox++y;//incrementsx}voidinc2(int&x){inty=x;//copyofx++y;//incrementsthecopie}在inc1中,x属于int&类型,因为int&和T&&是引用,但